Existing systems that use relational databases employ a relational model that typically organizes data into one or more tables of columns and rows, with a unique key identifying each row. However, this relational way of modeling data imposes certain constraints on a system that result in a number of issues, especially in cases where received data has an unknown structure or type and where relationships across pieces of data are unknown, undocumented, or difficult for a person to capture in a consistent or comprehensive manner. In many current applications, providing a response to queries requires an ability to store, access, view, and analyze relationships across pieces of data that are undocumented or not captured by a relational database. For example, in cases where data is received in the form of images related to a product having various attributes, a response to a user query regarding the product requires processing the images to determine a relationship between a perceived equality of images of the product.
Additionally, using a relational model in a business application imposes a framework that requires an understanding of business processes ahead of time. But in many situations, the information regarding relationships across rows of data ahead of time may just not be available or it may be uncertain due to the nature of the relationship. Moreover, as business processes change during the course of data collection and relationships between pieces of data change, the relational model is unable to adapt to capture changing relationships between pieces of data and the uncertainty of those relationships. To compound the problem, some types of information such as attributes of an image are not easy for people to capture and input into a system in a consistent or comprehensive fashion that anticipates which attributes will be relevant to future queries.
Accordingly, a solution is needed that addresses the problem of providing a method and system that can store, manage, and maintain data, including unstructured data of unknown structure or type, as in the case of collecting data in an ever-changing landscape where incoming data is constantly changing, or where relationships across pieces of data are uncertain, unknown, undocumented, or difficult for a person to capture in a consistent or comprehensive manner that anticipates which attributes will be relevant to future queries. Such a solution should also be able to accommodate uncertainty in the data and relationships between pieces of data while providing an ability to query the system and to provide a response that requires accessing, extracting, and analyzing relevant information from the unstructured data.